//app.js
var requestutil = require('/utils/request.js')
App({
  //生命周期函数--监听小程序初始化
  //当小程序初始化完成时，会触发 onLaunch（全局只触发一次）
  onLaunch: function (options) {
    console.debug("小程序进入场景值" + options.scene);
    // 展示本地存储能力
    // var logs = wx.getStorageSync('logs') || []
    // logs.unshift(Date.now())
    // wx.setStorageSync('logs', logs)
    var that=this;
    // 微信登录
    /*
    wx.login({
      success(res) {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.debug("小程序在微信端登录成功");
        var param = {};
        param.code = res.code;
        //调用接口 通过code获取openid
        requestutil.sendRequest("getOpenIdMiNi", param, function (res) {

          console.log(res)
          if (res.data.errorCode >= 0) {
            that.globalData.shouerUser = res.data.userLIST;
          } else {
            wx.showToast({
              title: res.data.errorMsg,
            })
          }
          console.log(res.data.docDetail)
        }, function () {
           //首儿登录成功后通知回调函数
          wx.showToast({
            title: '网络异常 登录失败！',
          })
        });
      }
    })*/
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }else
        {
          wx.authorize({
            scope: 'scope.userInfo',
            success() {
              wx.getUserInfo({
                success: res => {
                  // 可以将 res 发送给后台解码出 unionId
                  that.globalData.userInfo = res.userInfo

                  // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                  // 所以此处加入 callback 以防止这种情况
                  if (that.userInfoReadyCallback) {
                    that.userInfoReadyCallback(res)
                  }
                }
              })
            }
          })
        }
      }
    })
  },
  //生命周期函数--监听小程序显示
  //当小程序启动，或从后台进入前台显示，会触发 onShow
  onShow:function(options)
  {
    if (wx.getUpdateManager)
    {
      const updateManager = wx.getUpdateManager();
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        console.log(res.hasUpdate)
      })

      updateManager.onUpdateReady(function () {
        wx.showModal({
          title: '更新提示',
          content: '新版本已经准备好，是否重启应用？',
          success: function (res) {
            if (res.confirm) {
              // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
              updateManager.applyUpdate()
            }
          }
        })

      })

      updateManager.onUpdateFailed(function () {
        // 新的版本下载失败
      })
    }
  },
  //生命周期函数--监听小程序隐藏
  //当小程序从前台进入后台，会触发 onHide
  onHide:function()
  {

  },
  //错误监听函数	
  //当小程序发生脚本错误，或者 api 调用失败时，会触发 onError 并带上错误信息
  onError:function(msg)
  {
    console.e("------小程序发生错误------")
    console.e(msg)
  },
  //页面不存在监听函数
  //当小程序出现要打开的页面不存在的情况，会带上页面信息回调该函数，详见下文
  onPageNotFound:function(res)
  {

  },

  //首儿登录接口
  shouerlogin: function (shouerLoginSuccess, shouerLoginFail)
  {
    console.debug("其他页面调用登录首儿接口");
    var that = this;
    // 登录
    wx.login({
      //微信登录成功
      success(res) {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.debug("小程序在微信端登录成功");
        var param = {};
        param.code = res.code;
        //调用接口 通过code获取openid
        requestutil.sendRequest("getOpenIdMiNi", param, function (res) {
          console.info(res);
          //首儿登录成功回调方法
          if (res.data.errorCode >= 0) {  
            that.globalData.shouerUser = res.data.userLIST;
            //首儿登录成功后通知回调函数
            if (shouerLoginSuccess) {
              shouerLoginSuccess()
            }
          } else {
            //在用户在首儿登录失败 发生逻辑错误；
            wx.showToast({
              title: res.data.errorMsg,
              icon:'none'
            })
            //回调登录失败方法
            if (shouerLoginFail) {
              shouerLoginFail()
            }
          }
        }, function () {
          //首儿登录失败回调方法
          console.error("首儿登录失败");
          wx.showToast({
            title: '网络异常 登录失败！',
            icon: 'none'
          })
          //回调登录失败方法
          if (shouerLoginFail) {
            shouerLoginFail()
          }
        });
      },
      //微信登录失败
      fail:function()
      {
        console.error("小程序在微信端登录失败");
        wx.showToast({
          title: "微信登录失败!",
          icon: 'none'
        })
         //回调自定义登录失败方法
        console.info("回调登录失败方法");
        //回调登录失败方法
        if (shouerLoginFail) {
          shouerLoginFail()
        }
      }
    })
  },
  getShouerUserId:function()
  {
    if (this.globalData.shouerUser)
    {
      return this.globalData.shouerUser.userid;
    }else
    {
      return null;
    }
  },
  globalData: {
    userInfo: null,
    shouerUser:null
  }
})